package com.itheima.dao;

import com.itheima.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//二、做数据层接口（Dao）



public interface UserDao {

    /**
     * 添加用户
     * @param user
     * @return
     */
    public boolean save(User user);

    /**
     * 修改用户信息
     * @param user
     * @return
     */
    public boolean update(User user);

    /**
     * 删除用户信息
     * @param uuid
     * @return
     */
    public boolean delete(Integer uuid);

    /**
     * 查询单个用户信息
     * @param uuid
     * @return
     */
    public User get(Integer uuid);

    /**
     * 查询全部用户信息
     * @return
     */
    /*
        正常情况需要传两个分页操作(int page, int size)
        这里在业务层用分页插件解决
     */
    public List<User> getAll();

    /**
     * 根据用户名密码查询用户信息
     * @param userName
     * @param password
     * @return
     */
    /*
        方法名重点！！！(与UserService做区别)
        数据层的方法一般不用业务名称做方法名（login）
        在这仅仅体现与数据层打交道的操作
     */
    public User getByUserNameAndPassword
    (@Param("userName") String userName, @Param("password") String password);
    //@Param()是声明接收的是UserDao传过来的参数
}



//业务层接口